ABC354 D - AtCoder Wallpaper
from ABC354
ABC354D - AtCoder Wallpaper
提出:
ABC331D - Tile Patternと近い雰囲気を感じた。
端処理がめんどくさそうなので、
片方の点が原点にあるような長方形を計算する関数を定義した上で、
包助原理を使って所望の面積を求めにかかる。
A, Bが負の時は+4k(kは整数)だけずらして正の場合に帰着。
解説
累積和を手で計算しておく。
かしこいappbird.icon
繰り返し単位が小さくて
繰り返しパターンが事前に与えられているから
なぜかWA.icon x 20
この間違え方はオーバーフローか...?
でも、全部int64_tになってるし、なぜ?
こういうことだった
https://jumpaku.hatenablog.com/entry/2020/06/16/C%2B%2Bにおけるabs関数のオーバーロードについて調べた
Cには32bit整数型をとって、int型を返すabs関数が存在する
C++には64bit整数型をとって、64bit整数型を返すstd::abs関数が存在する
C++はCの関数を取り込んでいる
abs関数に64bit整数を渡すと、32bit整数の状態で絶対値が取られる。
std::abs関数に64bit整数を渡すと、64bit整数の状態で絶対値が取られる。
今回使っていたのはabs関数 <--- ??????
C++で大きい値で絶対値を取るときはabs関数ではなくstd::abs関数を使う
競技プログラミングでバグった時のためのチェックリスト
悔しすぎる.....appbird.icon
でも、このタイプの問題にも論理的なバグなく書き切る実力はつきつつあるとも見える。